#include "../header/AnimationCreater.h"
#include <osgViewer/Viewer>
#include <osg/Geometry>
#include <osgDB/ReadFile>
#include <osg/BlendFunc>
#include <osg/ValueObject>
#include <osgUtil/Optimizer>
#include <osg/AnimationPath>
#include <osg/MatrixTransform>
#include <cmath>
using namespace osg;

/*calculates the angle between two points and return the angle as radian.
 *not in use.
 */
double AnimationCreator::getAngleRad(Vec3 pointA, Vec3 pointB) {
    int kurvenFaktor = 1; //a factor for bigger angles, if necessary.
	
	double dotProd = pointA.x() * pointB.x() + pointA.y() * pointB.y() + pointA.z() * pointB.z();
	double lengthA = sqrt(pointA.x() * pointA.x() + pointA.y() * pointA.y() + pointA.z() * pointA.z());
	double lengthB = sqrt(pointB.x() * pointB.x() + pointB.y() * pointB.y() + pointB.z() * pointB.z());

    //if (skalarProd == 0)
     //   return acos(0);

    double result = dotProd / (lengthA * lengthB);
    return osg::DegreesToRadians(acos(result))*kurvenFaktor *  1;
}

/*

Method construct's the AnimationPath for the Train.
Time = time that the train will take between two points.

loading a file must be looking like this:
osgDB::readNodeFile("..path../Train.ive.0,0,-48.rot");

*/

osg::AnimationPath* AnimationCreator::createAnimationPath(float time) {
	int vectorCount = 10; //witch points will be used, in this case every 10th point.
    osg::ref_ptr<osg::AnimationPath> path = new osg::AnimationPath;
    path->setLoopMode(osg::AnimationPath::LOOP);

    //array constructed with script.
    Vec3 pathArray[] = {
		Vec3(-187.90732, 43.37911, -4.13946),
		Vec3(-150.33286, -2.83142, -4.13946),
		Vec3(-149.98206, -3.25188, -4.13945),
		Vec3(-149.78517, -3.09980, -4.13945),
		Vec3(-150.13493, -2.68066, -4.13946),
		Vec3(-149.61302, -3.70120, -4.13945),
		Vec3(-149.41745, -3.54740, -4.13945),
		Vec3(-149.21957, -4.18303, -4.13944),
		Vec3(-149.02556, -4.02728, -4.13944),
		Vec3(-148.79701, -4.69947, -4.13943),
		Vec3(-148.60464, -4.54167, -4.13943),
		Vec3(-148.34061, -5.25264, -4.13943),
		Vec3(-148.14992, -5.09283, -4.13943),
		Vec3(-147.84575, -5.84474, -4.13942),
		Vec3(-147.65660, -5.68308, -4.13942),
		Vec3(-147.30782, -6.47796, -4.13940),
		Vec3(-147.12001, -6.31475, -4.13940),
		Vec3(-146.72226, -7.15456, -4.13939),
		Vec3(-146.53545, -6.99021, -4.13939),
		Vec3(-146.72226, -7.15456, -4.13939),
		Vec3(-146.08452, -7.87678, -4.13937),
		Vec3(-145.89822, -7.71182, -4.13937),
		Vec3(-146.53545, -6.99021, -4.13939),
		Vec3(-146.08452, -7.87678, -4.13937),
		Vec3(-145.45525, -8.47080, -4.13933),
		Vec3(-145.27003, -8.30459, -4.13933),
		Vec3(-145.89822, -7.71182, -4.13937),
		Vec3(-145.45525, -8.47080, -4.13933),
		Vec3(-144.95224, -9.02164, -4.13931),
		Vec3(-144.76845, -8.85387, -4.13931),
		Vec3(-145.27003, -8.30459, -4.13933),
		Vec3(-144.44533, -9.56906, -4.13929),
		Vec3(-144.26297, -9.39972, -4.13929),
		Vec3(-143.93442, -10.11294, -4.13927),
		Vec3(-143.75352, -9.94201, -4.13927),
		Vec3(-143.41940, -10.65314, -4.13925),
		Vec3(-143.24002, -10.48063, -4.13925),
		Vec3(-142.90018, -11.18955, -4.13923),
		Vec3(-142.72232, -11.01544, -4.13923),
		Vec3(-142.37665, -11.72202, -4.13921),
		Vec3(-142.20035, -11.54632, -4.13921),
		Vec3(-141.84869, -12.25044, -4.13919),
		Vec3(-141.67400, -12.07312, -4.13919),
		Vec3(-141.31621, -12.77466, -4.13917),
		Vec3(-141.14317, -12.59573, -4.13917),
		Vec3(-140.77911, -13.29456, -4.13915),
		Vec3(-140.60776, -13.11401, -4.13915),
		Vec3(-140.23730, -13.80999, -4.13913),
		Vec3(-140.06766, -13.62782, -4.13913),
		Vec3(-140.23730, -13.80999, -4.13913),
		Vec3(-139.69070, -14.32080, -4.13911),
		Vec3(-139.52281, -14.13699, -4.13911),
		Vec3(-140.06766, -13.62782, -4.13913),
		Vec3(-139.69070, -14.32080, -4.13911),
		Vec3(-139.13924, -14.82681, -4.13910),
		Vec3(-138.97314, -14.64136, -4.13910),
		Vec3(-139.52281, -14.13699, -4.13911),
		Vec3(-138.58282, -15.32785, -4.13909),
		Vec3(-138.41858, -15.14077, -4.13909),
		Vec3(-138.02141, -15.82376, -4.13908),
		Vec3(-137.85905, -15.63502, -4.13908),
		Vec3(-138.02141, -15.82376, -4.13908),
		Vec3(-137.45491, -16.31435, -4.13908),
		Vec3(-137.29449, -16.12397, -4.13908),
		Vec3(-137.85905, -15.63502, -4.13908),
		Vec3(-136.88326, -16.79946, -4.13908),
		Vec3(-136.72482, -16.60743, -4.13908),
		Vec3(-136.88326, -16.79946, -4.13908),
		Vec3(-136.30638, -17.27891, -4.13909),
		Vec3(-136.14998, -17.08523, -4.13909),
		Vec3(-136.72482, -16.60743, -4.13908),
		Vec3(-135.72421, -17.75254, -4.13910),
		Vec3(-135.56987, -17.55721, -4.13910),
		Vec3(-135.72421, -17.75254, -4.13910),
		Vec3(-135.13667, -18.22016, -4.13912),
		Vec3(-134.98445, -18.02318, -4.13912),
		Vec3(-135.56987, -17.55721, -4.13910),
		Vec3(-135.13667, -18.22016, -4.13912),
		Vec3(-134.54373, -18.68158, -4.13914),
		Vec3(-134.39369, -18.48295, -4.13914),
		Vec3(-134.98445, -18.02318, -4.13912),
		Vec3(-133.94537, -19.13657, -4.13917),
		Vec3(-133.79756, -18.93630, -4.13917),
		Vec3(-133.94537, -19.13657, -4.13917),
		Vec3(-133.34160, -19.58493, -4.13920),
		Vec3(-133.19604, -19.38301, -4.13920),
		Vec3(-133.79756, -18.93630, -4.13917),
		Vec3(-133.34160, -19.58493, -4.13920),
		Vec3(-132.73238, -20.02643, -4.13924),
		Vec3(-132.58914, -19.82288, -4.13924),
		Vec3(-133.19604, -19.38301, -4.13920),
		Vec3(-132.11769, -20.46085, -4.13927),
		Vec3(-131.97684, -20.25568, -4.13927),
		Vec3(-131.49753, -20.88799, -4.13931),
		Vec3(-131.35910, -20.68119, -4.13931),
		Vec3(-131.49753, -20.88799, -4.13931),
		Vec3(-130.87189, -21.30762, -4.13934),
		Vec3(-130.73592, -21.09921, -4.13934),
		Vec3(-131.35910, -20.68119, -4.13931),
		Vec3(-130.87189, -21.30762, -4.13934),
		Vec3(-130.24074, -21.71952, -4.13937),
		Vec3(-130.10728, -21.50951, -4.13937),
		Vec3(-130.73592, -21.09921, -4.13934),
		Vec3(-129.60408, -22.12349, -4.13939),
		Vec3(-129.47318, -21.91189, -4.13939),
		Vec3(-129.60408, -22.12349, -4.13939),
		Vec3(-128.96194, -22.51934, -4.13941),
		Vec3(-128.83365, -22.30616, -4.13941),
		Vec3(-129.47318, -21.91189, -4.13939),
		Vec3(-128.31442, -22.90694, -4.13943),
		Vec3(-128.18878, -22.69220, -4.13943),
		Vec3(-128.31442, -22.90694, -4.13943),
		Vec3(-127.66164, -23.28616, -4.13944),
		Vec3(-127.53868, -23.06987, -4.13944),
		Vec3(-128.18878, -22.69220, -4.13943),
		Vec3(-127.66164, -23.28616, -4.13944),
		Vec3(-127.00371, -23.65688, -4.13945),
		Vec3(-126.88348, -23.43906, -4.13945),
		Vec3(-127.53868, -23.06987, -4.13944),
		Vec3(-126.34073, -24.01897, -4.13945),
		Vec3(-126.22327, -23.79964, -4.13945),
		Vec3(-126.34073, -24.01897, -4.13945),
		Vec3(-125.67283, -24.37230, -4.13946),
		Vec3(-125.55818, -24.15150, -4.13946),
		Vec3(-126.22327, -23.79964, -4.13945),
		Vec3(-125.00011, -24.71677, -4.13946),
		Vec3(-124.88832, -24.49451, -4.13946),
		Vec3(-124.32271, -25.05223, -4.13946),
		Vec3(-124.21379, -24.82856, -4.13946),
		Vec3(-123.64072, -25.37859, -4.13946),
		Vec3(-123.53471, -25.15351, -4.13946),
		Vec3(-122.95428, -25.69571, -4.13946),
		Vec3(-122.85121, -25.46927, -4.13946),
		Vec3(-122.26353, -26.00356, -4.13946),
		Vec3(-122.16344, -25.77580, -4.13946),
		Vec3(-121.56863, -26.30214, -4.13946),
		Vec3(-121.47153, -26.07308, -4.13946),
		Vec3(-120.86975, -26.59141, -4.13946),
		Vec3(-120.77567, -26.36110, -4.13946),
		Vec3(-120.16704, -26.87136, -4.13946),
		Vec3(-120.07599, -26.63983, -4.13946),
		Vec3(-119.46065, -27.14198, -4.13946),
		Vec3(-119.37265, -26.90927, -4.13946),
		Vec3(-118.75076, -27.40325, -4.13946),
		Vec3(-118.66583, -27.16941, -4.13946),
		Vec3(-118.03752, -27.65516, -4.13946),
		Vec3(-117.95568, -27.42022, -4.13946),
		Vec3(-117.32111, -27.89770, -4.13946),
		Vec3(-117.24235, -27.66170, -4.13946),
		Vec3(-116.60166, -28.13085, -4.13946),
		Vec3(-116.52600, -27.89385, -4.13946),
		Vec3(-115.87935, -28.35463, -4.13946),
		Vec3(-115.80679, -28.11666, -4.13946),
		Vec3(-115.15433, -28.56903, -4.13946),
		Vec3(-115.08487, -28.33014, -4.13946),
		Vec3(-114.42673, -28.77409, -4.13946),
		Vec3(-114.36037, -28.53431, -4.13946),
		Vec3(-113.69670, -28.96981, -4.13946),
		Vec3(-113.63344, -28.72920, -4.13946),
		Vec3(-112.96441, -29.15620, -4.13946),
		Vec3(-112.90424, -28.91480, -4.13946),
		Vec3(-112.23000, -29.33329, -4.13946),
		Vec3(-112.17290, -29.09115, -4.13946),
		Vec3(-111.49360, -29.50111, -4.13946),
		Vec3(-111.43956, -29.25826, -4.13946),
		Vec3(-110.75537, -29.65965, -4.13946),
		Vec3(-110.70438, -29.41615, -4.13946),
		Vec3(-110.01547, -29.80896, -4.13946),
		Vec3(-109.96751, -29.56484, -4.13946),
		Vec3(-109.27403, -29.94905, -4.13946),
		Vec3(-109.22908, -29.70436, -4.13946),
		Vec3(-108.53119, -30.08001, -4.13946),
		Vec3(-108.48923, -29.83479, -4.13946),
		Vec3(-107.78709, -30.20189, -4.13946),
		Vec3(-107.74808, -29.95618, -4.13946),
		Vec3(-107.04185, -30.31478, -4.13946),
		Vec3(-107.00578, -30.06862, -4.13946),
		Vec3(-106.29562, -30.41875, -4.13946),
		Vec3(-106.26244, -30.17219, -4.13946),
		Vec3(-105.54852, -30.51389, -4.13946),
		Vec3(-105.51822, -30.26695, -4.13946),
		Vec3(-104.80069, -30.60025, -4.13946),
		Vec3(-104.77322, -30.35299, -4.13946),
		Vec3(-104.05226, -30.67794, -4.13946),
		Vec3(-104.02759, -30.43037, -4.13946),
		Vec3(-103.30337, -30.74701, -4.13946),
		Vec3(-103.28145, -30.49919, -4.13946),
		Vec3(-102.55413, -30.80756, -4.13946),
		Vec3(-102.53493, -30.55951, -4.13946),
		Vec3(-101.80469, -30.85971, -4.13946),
		Vec3(-101.78815, -30.61148, -4.13946),
		Vec3(-101.05508, -30.90365, -4.13946),
		Vec3(-101.04119, -30.65525, -4.13946),
		Vec3(-100.30545, -30.93952, -4.13946),
		Vec3(-100.29414, -30.69099, -4.13946),
		Vec3(-99.55585, -30.96750, -4.13946),
		Vec3(-99.54707, -30.71887, -4.13946),
		Vec3(-98.80640, -30.98776, -4.13946),
		Vec3(-98.80012, -30.73905, -4.13946),
		Vec3(-98.05717, -31.00046, -4.13946),
		Vec3(-98.05334, -30.75170, -4.13946),
		Vec3(-97.30827, -31.00576, -4.13946),
		Vec3(-97.30684, -30.75698, -4.13946),
		Vec3(-96.55977, -31.00385, -4.13946),
		Vec3(-96.56069, -30.75506, -4.13946),
		Vec3(-95.81177, -30.99488, -4.13946),
		Vec3(-95.81499, -30.74611, -4.13946),
		Vec3(-95.06435, -30.97901, -4.13946),
		Vec3(-95.06982, -30.73028, -4.13946),
		Vec3(-94.31756, -30.95643, -4.13946),
		Vec3(-94.32523, -30.70776, -4.13946),
		Vec3(-93.57141, -30.92729, -4.13946),
		Vec3(-93.58124, -30.67870, -4.13946),
		Vec3(-92.82597, -30.89177, -4.13946),
		Vec3(-92.83791, -30.64327, -4.13946),
		Vec3(-92.08128, -30.85004, -4.13946),
		Vec3(-92.09526, -30.60165, -4.13946),
		Vec3(-91.33737, -30.80227, -4.13946),
		Vec3(-91.35335, -30.55399, -4.13946),
		Vec3(-90.59427, -30.74861, -4.13946),
		Vec3(-90.61221, -30.50047, -4.13946),
		Vec3(-89.85204, -30.68924, -4.13946),
		Vec3(-89.87189, -30.44125, -4.13946),
		Vec3(-89.11073, -30.62434, -4.13946),
		Vec3(-89.13242, -30.37650, -4.13946),
		Vec3(-88.37035, -30.55405, -4.13946),
		Vec3(-88.39384, -30.30638, -4.13946),
		Vec3(-87.63091, -30.47854, -4.13946),
		Vec3(-87.65617, -30.23104, -4.13946),
		Vec3(-86.89246, -30.39795, -4.13946),
		Vec3(-86.91942, -30.15062, -4.13946),
		Vec3(-86.15496, -30.31242, -4.13946),
		Vec3(-86.18358, -30.06529, -4.13946),
		Vec3(-85.41846, -30.22211, -4.13946),
		Vec3(-85.44870, -29.97517, -4.13946),
		Vec3(-84.68295, -30.12716, -4.13946),
		Vec3(-84.71474, -29.88041, -4.13946),
		Vec3(-83.94843, -30.02770, -4.13946),
		Vec3(-83.98175, -29.78115, -4.13946),
		Vec3(-83.21492, -29.92390, -4.13946),
		Vec3(-83.24971, -29.67756, -4.13946),
		Vec3(-82.48243, -29.81588, -4.13946),
		Vec3(-82.51865, -29.56974, -4.13946),
		Vec3(-81.75096, -29.70380, -4.13946),
		Vec3(-81.78856, -29.45787, -4.13946),
		Vec3(-81.02052, -29.58780, -4.13946),
		Vec3(-81.05946, -29.34208, -4.13946),
		Vec3(-80.29109, -29.46799, -4.13946),
		Vec3(-80.33132, -29.22248, -4.13946),
		Vec3(-79.56268, -29.34452, -4.13946),
		Vec3(-79.60416, -29.09921, -4.13946),
		Vec3(-78.83524, -29.21750, -4.13946),
		Vec3(-78.87793, -28.97240, -4.13946),
		Vec3(-78.10879, -29.08706, -4.13946),
		Vec3(-78.15264, -28.84217, -4.13946),
		Vec3(-77.38332, -28.95333, -4.13946),
		Vec3(-77.42830, -28.70864, -4.13946),
		Vec3(-76.65880, -28.81644, -4.13946),
		Vec3(-76.70486, -28.57195, -4.13946),
		Vec3(-75.93525, -28.67651, -4.13946),
		Vec3(-75.98235, -28.43222, -4.13946),
		Vec3(-75.21263, -28.53366, -4.13946),
		Vec3(-75.26073, -28.28957, -4.13946),
		Vec3(-74.49094, -28.38802, -4.13946),
		Vec3(-74.54001, -28.14412, -4.13946),
		Vec3(-73.77016, -28.23971, -4.13946),
		Vec3(-73.82015, -27.99600, -4.13946),
		Vec3(-73.05026, -28.08883, -4.13946),
		Vec3(-73.10114, -27.84530, -4.13946),
		Vec3(-72.33125, -27.93550, -4.13946),
		Vec3(-72.38298, -27.69214, -4.13946),
		Vec3(-71.61310, -27.77981, -4.13946),
		Vec3(-71.66563, -27.53663, -4.13946),
		Vec3(-70.89577, -27.62188, -4.13946),
		Vec3(-70.94907, -27.37887, -4.13946),
		Vec3(-70.17924, -27.46183, -4.13946),
		Vec3(-70.23329, -27.21898, -4.13946),
		Vec3(-69.46352, -27.29975, -4.13946),
		Vec3(-69.51826, -27.05706, -4.13946),
		Vec3(-68.74855, -27.13575, -4.13946),
		Vec3(-68.80396, -26.89322, -4.13946),
		Vec3(-68.03434, -26.96996, -4.13946),
		Vec3(-68.09039, -26.72756, -4.13946),
		Vec3(-67.32086, -26.80245, -4.13946),
		Vec3(-67.37750, -26.56020, -4.13946),
		Vec3(-66.60809, -26.63334, -4.13946),
		Vec3(-66.66530, -26.39121, -4.13946),
		Vec3(-65.89600, -26.46270, -4.13946),
		Vec3(-65.95374, -26.22071, -4.13946),
		Vec3(-65.18456, -26.29065, -4.13946),
		Vec3(-65.24280, -26.04878, -4.13946),
		Vec3(-64.47375, -26.11728, -4.13946),
		Vec3(-64.53246, -25.87551, -4.13946),
		Vec3(-63.76357, -25.94267, -4.13946),
		Vec3(-63.82272, -25.70101, -4.13946),
		Vec3(-63.05398, -25.76692, -4.13946),
		Vec3(-63.11353, -25.52536, -4.13946),
		Vec3(-62.34494, -25.59013, -4.13946),
		Vec3(-62.40486, -25.34866, -4.13946),
		Vec3(-61.63643, -25.41239, -4.13946),
		Vec3(-61.69669, -25.17101, -4.13946),
		Vec3(-60.92844, -25.23379, -4.13946),
		Vec3(-60.98901, -24.99249, -4.13946),
		Vec3(-60.22095, -25.05441, -4.13946),
		Vec3(-60.28181, -24.81318, -4.13946),
		Vec3(-59.51392, -24.87435, -4.13946),
		Vec3(-59.57503, -24.63318, -4.13946),
		Vec3(-58.80734, -24.69367, -4.13946),
		Vec3(-58.86867, -24.45256, -4.13946),
		Vec3(-58.10118, -24.51248, -4.13946),
		Vec3(-58.16270, -24.27142, -4.13946),
		Vec3(-57.39542, -24.33084, -4.13946),
		Vec3(-57.45712, -24.08982, -4.13946),
		Vec3(-56.69004, -24.14885, -4.13946),
		Vec3(-56.75186, -23.90786, -4.13946),
		Vec3(-55.98500, -23.96658, -4.13946),
		Vec3(-56.04694, -23.72562, -4.13946),
		Vec3(-55.28028, -23.78412, -4.13946),
		Vec3(-55.34230, -23.54319, -4.13946),
		Vec3(-54.57589, -23.60155, -4.13946),
		Vec3(-54.63795, -23.36063, -4.13946),
		Vec3(-53.87176, -23.41895, -4.13946),
		Vec3(-53.93385, -23.17804, -4.13946),
		Vec3(-53.16788, -23.23639, -4.13946),
		Vec3(-53.22997, -22.99548, -4.13946),
		Vec3(-52.46425, -23.05395, -4.13946),
		Vec3(-52.52631, -22.81303, -4.13946),
		Vec3(-51.76084, -22.87171, -4.13946),
		Vec3(-51.82285, -22.63077, -4.13946),
		Vec3(-51.05760, -22.68973, -4.13946),
		Vec3(-51.11954, -22.44877, -4.13946),
		Vec3(-50.35458, -22.50809, -4.13946),
		Vec3(-50.41640, -22.26711, -4.13946),
		Vec3(-49.65166, -22.32687, -4.13946),
		Vec3(-49.71337, -22.08586, -4.13946),
		Vec3(-48.94891, -22.14615, -4.13946),
		Vec3(-49.01045, -21.90509, -4.13946),
		Vec3(-48.24623, -21.96599, -4.13946),
		Vec3(-48.30759, -21.72489, -4.13946),
		Vec3(-47.54365, -21.78647, -4.13946),
		Vec3(-47.60481, -21.54531, -4.13946),
		Vec3(-46.84115, -21.60765, -4.13946),
		Vec3(-46.90208, -21.36644, -4.13946),
		Vec3(-46.13870, -21.42962, -4.13946),
		Vec3(-46.19938, -21.18834, -4.13946),
		Vec3(-45.43626, -21.25243, -4.13946),
		Vec3(-45.49667, -21.01108, -4.13946),
		Vec3(-44.73387, -21.07615, -4.13946),
		Vec3(-44.79397, -20.83472, -4.13946),
		Vec3(-44.03144, -20.90084, -4.13946),
		Vec3(-44.09122, -20.65934, -4.13946),
		Vec3(-43.32903, -20.72659, -4.13946),
		Vec3(-43.38844, -20.48500, -4.13946),
		Vec3(-42.62653, -20.55345, -4.13946),
		Vec3(-42.68559, -20.31178, -4.13946),
		Vec3(-41.92402, -20.38150, -4.13946),
		Vec3(-41.98267, -20.13973, -4.13946),
		Vec3(-41.22142, -20.21080, -4.13946),
		Vec3(-41.27966, -19.96892, -4.13946),
		Vec3(-40.51873, -20.04142, -4.13946),
		Vec3(-40.57652, -19.79943, -4.13946),
		Vec3(-39.81596, -19.87341, -4.13946),
		Vec3(-39.87328, -19.63132, -4.13946),
		Vec3(-39.11304, -19.70685, -4.13946),
		Vec3(-39.16988, -19.46464, -4.13946),
		Vec3(-38.41002, -19.54178, -4.13946),
		Vec3(-38.46635, -19.29946, -4.13946),
		Vec3(-37.70686, -19.37829, -4.13946),
		Vec3(-37.76265, -19.13584, -4.13946),
		Vec3(-37.00352, -19.21642, -4.13946),
		Vec3(-37.05876, -18.97384, -4.13946),
		Vec3(-36.30002, -19.05623, -4.13946),
		Vec3(-36.35469, -18.81353, -4.13946),
		Vec3(-35.59637, -18.89780, -4.13946),
		Vec3(-35.65044, -18.65496, -4.13946),
		Vec3(-34.89249, -18.74119, -4.13946),
		Vec3(-34.94594, -18.49821, -4.13946),
		Vec3(-34.18842, -18.58644, -4.13946),
		Vec3(-34.24123, -18.34333, -4.13946),
		Vec3(-33.48412, -18.43363, -4.13946),
		Vec3(-33.53626, -18.19037, -4.13946),
		Vec3(-32.77962, -18.28280, -4.13946),
		Vec3(-32.83109, -18.03940, -4.13946),
		Vec3(-32.07490, -18.13402, -4.13946),
		Vec3(-32.12566, -17.89046, -4.13946),
		Vec3(-31.36991, -17.98733, -4.13946),
		Vec3(-31.41996, -17.74363, -4.13946),
		Vec3(-30.66471, -17.84280, -4.13946),
		Vec3(-30.71401, -17.59894, -4.13946),
		Vec3(-29.95924, -17.70047, -4.13946),
		Vec3(-30.00778, -17.45647, -4.13946),
		Vec3(-29.25352, -17.56042, -4.13946),
		Vec3(-29.30128, -17.31626, -4.13946),
		Vec3(-28.54752, -17.42268, -4.13946),
		Vec3(-28.59448, -17.17837, -4.13946),
		Vec3(-27.84126, -17.28733, -4.13946),
		Vec3(-27.88741, -17.04285, -4.13946),
		Vec3(-27.13472, -17.15440, -4.13946),
		Vec3(-27.18002, -16.90977, -4.13946),
		Vec3(-26.42790, -17.02394, -4.13946),
		Vec3(-26.47234, -16.77916, -4.13946),
		Vec3(-25.72080, -16.89602, -4.13946),
		Vec3(-25.76437, -16.65107, -4.13946),
		Vec3(-25.01343, -16.77067, -4.13946),
		Vec3(-25.05610, -16.52557, -4.13946),
		Vec3(-24.30576, -16.64793, -4.13946),
		Vec3(-24.34752, -16.40268, -4.13946),
		Vec3(-23.59780, -16.52788, -4.13946),
		Vec3(-23.63863, -16.28246, -4.13946),
		Vec3(-22.88956, -16.41054, -4.13946),
		Vec3(-22.92945, -16.16497, -4.13946),
		Vec3(-22.18101, -16.29597, -4.13946),
		Vec3(-22.21993, -16.05025, -4.13946),
		Vec3(-21.47219, -16.18422, -4.13946),
		Vec3(-21.51013, -15.93834, -4.13946),
		Vec3(-20.76305, -16.07533, -4.13946),
		Vec3(-20.80001, -15.82930, -4.13946),
		Vec3(-20.05367, -15.96935, -4.13946),
		Vec3(-20.08961, -15.72317, -4.13946),
		Vec3(-19.34396, -15.86630, -4.13946),
		Vec3(-19.37888, -15.61998, -4.13946),
		Vec3(-18.63399, -15.76624, -4.13946),
		Vec3(-18.66786, -15.51977, -4.13946),
		Vec3(-17.92374, -15.66920, -4.13946),
		Vec3(-17.95656, -15.42259, -4.13946),
		Vec3(-17.21323, -15.57522, -4.13946),
		Vec3(-17.24498, -15.32846, -4.13946),
		Vec3(-16.50244, -15.48434, -4.13946),
		Vec3(-16.53310, -15.23745, -4.13946),
		Vec3(-15.79137, -15.39660, -4.13946),
		Vec3(-15.82092, -15.14958, -4.13946),
		Vec3(-15.08005, -15.31205, -4.13946),
		Vec3(-15.10849, -15.06489, -4.13946),
		Vec3(-14.36845, -15.23071, -4.13946),
		Vec3(-14.39578, -14.98343, -4.13946),
		Vec3(-13.65663, -15.15262, -4.13946),
		Vec3(-13.68283, -14.90521, -4.13946),
		Vec3(-12.94453, -15.07780, -4.13946),
		Vec3(-12.96957, -14.83028, -4.13946),
		Vec3(-12.23227, -15.00630, -4.13946),
		Vec3(-12.25615, -14.75866, -4.13946),
		Vec3(-11.51973, -14.93812, -4.13946),
		Vec3(-11.54243, -14.69037, -4.13946),
		Vec3(-10.80698, -14.87331, -4.13946),
		Vec3(-10.82849, -14.62545, -4.13946),
		Vec3(-10.09402, -14.81189, -4.13946),
		Vec3(-10.11435, -14.56393, -4.13946),
		Vec3(-9.38087, -14.75389, -4.13946),
		Vec3(-9.40001, -14.50584, -4.13946),
		Vec3(-8.66753, -14.69934, -4.13946),
		Vec3(-8.68546, -14.45120, -4.13946),
		Vec3(-7.95398, -14.64827, -4.13946),
		Vec3(-7.97069, -14.40004, -4.13946),
		Vec3(-7.24028, -14.60071, -4.13946),
		Vec3(-7.25577, -14.35240, -4.13946),
		Vec3(-6.52640, -14.55670, -4.13946),
		Vec3(-6.54065, -14.30832, -4.13946),
		Vec3(-5.81241, -14.51627, -4.13946),
		Vec3(-5.82541, -14.26782, -4.13946),
		Vec3(-5.09825, -14.47946, -4.13946),
		Vec3(-5.11002, -14.23095, -4.13946),
		Vec3(-4.38396, -14.44630, -4.13946),
		Vec3(-4.39449, -14.19774, -4.13946),
		Vec3(-3.66957, -14.41683, -4.13946),
		Vec3(-3.67883, -14.16822, -4.13946),
		Vec3(-2.95511, -14.39108, -4.13946),
		Vec3(-2.96310, -14.14243, -4.13946),
		Vec3(-2.24052, -14.36910, -4.13946),
		Vec3(-2.24725, -14.12040, -4.13946),
		Vec3(-1.52588, -14.35090, -4.13946),
		Vec3(-1.53134, -14.10217, -4.13946),
		Vec3(-0.81116, -14.33652, -4.13946),
		Vec3(-0.81535, -14.08777, -4.13946),
		Vec3(-0.09637, -14.32595, -4.13946),
		Vec3(-0.09930, -14.07718, -4.13946),
		Vec3(0.61838, -14.31919, -4.13946),
		Vec3(0.61673, -14.07041, -4.13946),
		Vec3(1.33321, -14.31624, -4.13946),
		Vec3(1.33284, -14.06745, -4.13946),
		Vec3(2.04802, -14.31710, -4.13946),
		Vec3(2.04893, -14.06831, -4.13946),
		Vec3(2.76282, -14.32176, -4.13946),
		Vec3(2.76500, -14.07298, -4.13946),
		Vec3(3.47762, -14.33022, -4.13946),
		Vec3(3.48108, -14.08146, -4.13946),
		Vec3(4.19237, -14.34248, -4.13946),
		Vec3(4.19710, -14.09374, -4.13946),
		Vec3(4.90704, -14.35855, -4.13946),
		Vec3(4.91304, -14.10983, -4.13946),
		Vec3(5.62167, -14.37840, -4.13946),
		Vec3(5.62894, -14.12972, -4.13946),
		Vec3(6.33621, -14.40203, -4.13946),
		Vec3(6.34474, -14.15338, -4.13946),
		Vec3(7.05064, -14.42938, -4.13946),
		Vec3(7.06044, -14.18078, -4.13946),
		Vec3(7.76500, -14.46043, -4.13946),
		Vec3(7.77605, -14.21189, -4.13946),
		Vec3(8.47920, -14.49515, -4.13946),
		Vec3(8.49150, -14.24666, -4.13946),
		Vec3(9.19331, -14.53350, -4.13946),
		Vec3(9.20685, -14.28508, -4.13946),
		Vec3(9.90724, -14.57544, -4.13946),
		Vec3(9.92203, -14.32709, -4.13946),
		Vec3(10.62106, -14.62095, -4.13946),
		Vec3(10.63707, -14.37268, -4.13946),
		Vec3(11.33470, -14.66999, -4.13946),
		Vec3(11.35193, -14.42180, -4.13946),
		Vec3(12.04814, -14.72253, -4.13946),
		Vec3(12.06659, -14.47442, -4.13946),
		Vec3(12.76141, -14.77853, -4.13946),
		Vec3(12.78107, -14.53052, -4.13946),
		Vec3(13.47447, -14.83797, -4.13946),
		Vec3(13.49533, -14.59006, -4.13946),
		Vec3(14.18736, -14.90083, -4.13946),
		Vec3(14.20940, -14.65302, -4.13946),
		Vec3(14.90002, -14.96706, -4.13946),
		Vec3(14.92323, -14.71936, -4.13946),
		Vec3(15.61247, -15.03664, -4.13946),
		Vec3(15.63684, -14.78905, -4.13946),
		Vec3(16.32466, -15.10954, -4.13946),
		Vec3(16.35019, -14.86207, -4.13946),
		Vec3(17.03662, -15.18574, -4.13946),
		Vec3(17.06329, -14.93839, -4.13946),
		Vec3(17.74837, -15.26520, -4.13946),
		Vec3(17.77617, -15.01797, -4.13946),
		Vec3(18.45984, -15.34790, -4.13946),
		Vec3(18.48877, -15.10080, -4.13946),
		Vec3(19.17107, -15.43380, -4.13946),
		Vec3(19.20110, -15.18683, -4.13946),
		Vec3(19.88197, -15.52286, -4.13946),
		Vec3(19.91310, -15.27603, -4.13946),
		Vec3(20.59264, -15.61505, -4.13946),
		Vec3(20.62483, -15.36835, -4.13946),
		Vec3(21.30309, -15.71033, -4.13946),
		Vec3(21.33635, -15.46377, -4.13946),
		Vec3(22.01320, -15.80864, -4.13946),
		Vec3(22.04752, -15.56223, -4.13946),
		Vec3(22.72304, -15.90996, -4.13946),
		Vec3(22.75838, -15.66370, -4.13946),
		Vec3(23.43263, -16.01425, -4.13946),
		Vec3(23.46899, -15.76814, -4.13946),
		Vec3(24.14192, -16.12147, -4.13946),
		Vec3(24.17929, -15.87550, -4.13946),
		Vec3(24.85092, -16.23156, -4.13946),
		Vec3(24.88928, -15.98575, -4.13946),
		Vec3(25.55963, -16.34451, -4.13946),
		Vec3(25.59897, -16.09885, -4.13946),
		Vec3(26.26802, -16.46025, -4.13946),
		Vec3(26.30830, -16.21474, -4.13946),
		Vec3(26.97615, -16.57874, -4.13946),
		Vec3(27.01738, -16.33339, -4.13946),
		Vec3(27.68399, -16.69993, -4.13946),
		Vec3(27.72614, -16.45474, -4.13946),
		Vec3(28.39153, -16.82377, -4.13946),
		Vec3(28.43459, -16.57874, -4.13946),
		Vec3(29.09879, -16.95021, -4.13946),
		Vec3(29.14273, -16.70534, -4.13946),
		Vec3(29.80577, -17.07921, -4.13946),
		Vec3(29.85057, -16.83449, -4.13946),
		Vec3(30.51248, -17.21071, -4.13946),
		Vec3(30.55814, -16.96615, -4.13946),
		Vec3(31.21890, -17.34467, -4.13946),
		Vec3(31.26540, -17.10027, -4.13946),
		Vec3(31.92505, -17.48104, -4.13946),
		Vec3(31.97235, -17.23679, -4.13946),
		Vec3(32.63094, -17.61976, -4.13946),
		Vec3(32.67903, -17.37566, -4.13946),
		Vec3(33.33655, -17.76078, -4.13946),
		Vec3(33.38542, -17.51684, -4.13946),
		Vec3(34.04190, -17.90404, -4.13946),
		Vec3(34.09152, -17.66025, -4.13946),
		Vec3(34.74701, -18.04949, -4.13946),
		Vec3(34.79736, -17.80585, -4.13946),
		Vec3(35.45187, -18.19707, -4.13946),
		Vec3(35.50294, -17.95358, -4.13946),
		Vec3(36.15651, -18.34673, -4.13946),
		Vec3(36.20828, -18.10338, -4.13946),
		Vec3(36.86092, -18.49840, -4.13946),
		Vec3(36.91335, -18.25520, -4.13946),
		Vec3(37.56512, -18.65203, -4.13946),
		Vec3(37.61821, -18.40898, -4.13946),
		Vec3(38.26910, -18.80758, -4.13946),
		Vec3(38.32281, -18.56466, -4.13946),
		Vec3(38.97290, -18.96497, -4.13946),
		Vec3(39.02722, -18.72218, -4.13946),
		Vec3(39.67650, -19.12415, -4.13946),
		Vec3(39.73140, -18.88149, -4.13946),
		Vec3(40.37990, -19.28505, -4.13946),
		Vec3(40.43538, -19.04252, -4.13946),
		Vec3(41.08316, -19.44762, -4.13946),
		Vec3(41.13918, -19.20522, -4.13946),
		Vec3(41.78629, -19.61178, -4.13946),
		Vec3(41.84283, -19.36951, -4.13946),
		Vec3(42.48924, -19.77749, -4.13946),
		Vec3(42.54630, -19.53533, -4.13946),
		Vec3(43.19211, -19.94468, -4.13946),
		Vec3(43.24963, -19.70263, -4.13946),
		Vec3(43.89485, -20.11328, -4.13946),
		Vec3(43.95284, -19.87134, -4.13946),
		Vec3(44.59747, -20.28322, -4.13946),
		Vec3(44.65590, -20.04139, -4.13946),
		Vec3(45.30005, -20.45446, -4.13946),
		Vec3(45.35887, -20.21273, -4.13946),
		Vec3(46.00253, -20.62692, -4.13946),
		Vec3(46.06175, -20.38528, -4.13946),
		Vec3(46.70499, -20.80054, -4.13946),
		Vec3(46.76457, -20.55899, -4.13946),
		Vec3(47.40742, -20.97525, -4.13946),
		Vec3(47.46735, -20.73378, -4.13946),
		Vec3(48.10983, -21.15098, -4.13946),
		Vec3(48.17006, -20.90959, -4.13946),
		Vec3(48.81224, -21.32766, -4.13946),
		Vec3(48.87277, -21.08634, -4.13946),
		Vec3(49.51468, -21.50522, -4.13946),
		Vec3(49.57547, -21.26398, -4.13946),
		Vec3(50.21713, -21.68360, -4.13946),
		Vec3(50.27817, -21.44241, -4.13946),
		Vec3(50.91968, -21.86273, -4.13946),
		Vec3(50.98094, -21.62160, -4.13946),
		Vec3(51.62228, -22.04253, -4.13946),
		Vec3(51.68373, -21.80145, -4.13946),
		Vec3(52.32498, -22.22294, -4.13946),
		Vec3(52.38661, -21.98190, -4.13946),
		Vec3(53.02780, -22.40389, -4.13946),
		Vec3(53.08957, -22.16289, -4.13946),
		Vec3(53.73076, -22.58530, -4.13946),
		Vec3(53.79265, -22.34433, -4.13946),
		Vec3(54.43390, -22.76710, -4.13946),
		Vec3(54.49586, -22.52615, -4.13946),
		Vec3(55.13719, -22.94920, -4.13946),
		Vec3(55.19923, -22.70827, -4.13946),
		Vec3(55.84070, -23.13154, -4.13946),
		Vec3(55.90279, -22.89063, -4.13946),
		Vec3(56.54442, -23.31405, -4.13946),
		Vec3(56.60652, -23.07314, -4.13946),
		Vec3(57.24840, -23.49664, -4.13946),
		Vec3(57.31049, -23.25572, -4.13946),
		Vec3(57.95265, -23.67924, -4.13946),
		Vec3(58.01471, -23.43832, -4.13946),
		Vec3(58.65720, -23.86178, -4.13946),
		Vec3(58.71918, -23.62084, -4.13946),
		Vec3(59.36201, -24.04418, -4.13946),
		Vec3(59.42390, -23.80321, -4.13946),
		Vec3(60.06720, -24.22635, -4.13946),
		Vec3(60.12897, -23.98535, -4.13946),
		Vec3(60.77274, -24.40820, -4.13946),
		Vec3(60.83435, -24.16717, -4.13946),
		Vec3(61.47868, -24.58967, -4.13946),
		Vec3(61.54012, -24.34859, -4.13946),
		Vec3(62.18503, -24.77066, -4.13946),
		Vec3(62.24626, -24.52953, -4.13946),
		Vec3(62.89177, -24.95110, -4.13946),
		Vec3(62.95277, -24.70990, -4.13946),
		Vec3(63.59897, -25.13088, -4.13946),
		Vec3(63.65970, -24.88962, -4.13946),
		Vec3(64.30667, -25.30995, -4.13946),
		Vec3(64.36713, -25.06861, -4.13946),
		Vec3(65.01488, -25.48820, -4.13946),
		Vec3(65.07500, -25.24679, -4.13946),
		Vec3(65.72362, -25.66556, -4.13946),
		Vec3(65.78339, -25.42406, -4.13946),
		Vec3(66.43286, -25.84193, -4.13946),
		Vec3(66.49225, -25.60033, -4.13946),
		Vec3(67.14270, -26.01722, -4.13946),
		Vec3(67.20168, -25.77552, -4.13946),
		Vec3(67.85315, -26.19133, -4.13946),
		Vec3(67.91167, -25.94952, -4.13946),
		Vec3(68.56421, -26.36416, -4.13946),
		Vec3(68.62225, -26.12224, -4.13946),
		Vec3(69.27592, -26.53563, -4.13946),
		Vec3(69.33345, -26.29359, -4.13946),
		Vec3(69.98830, -26.70564, -4.13946),
		Vec3(70.04527, -26.46347, -4.13946),
		Vec3(70.70135, -26.87410, -4.13946),
		Vec3(70.75775, -26.63178, -4.13946),
		Vec3(71.41512, -27.04090, -4.13946),
		Vec3(71.47090, -26.79844, -4.13946),
		Vec3(72.12965, -27.20596, -4.13946),
		Vec3(72.18480, -26.96336, -4.13946),
		Vec3(72.84492, -27.36916, -4.13946),
		Vec3(72.89938, -27.12641, -4.13946),
		Vec3(73.56100, -27.53041, -4.13946),
		Vec3(73.61475, -27.28750, -4.13946),
		Vec3(74.27786, -27.68959, -4.13946),
		Vec3(74.33084, -27.44651, -4.13946),
		Vec3(74.99554, -27.84660, -4.13946),
		Vec3(75.04773, -27.60334, -4.13946),
		Vec3(75.71405, -28.00131, -4.13946),
		Vec3(75.76543, -27.75788, -4.13946),
		Vec3(76.43340, -28.15363, -4.13946),
		Vec3(76.48390, -27.91002, -4.13946),
		Vec3(77.15372, -28.30346, -4.13946),
		Vec3(77.20332, -28.05966, -4.13946),
		Vec3(77.87486, -28.45066, -4.13946),
		Vec3(77.92352, -28.20668, -4.13946),
		Vec3(78.59692, -28.59514, -4.13946),
		Vec3(78.64461, -28.35096, -4.13946),
		Vec3(79.31995, -28.73678, -4.13946),
		Vec3(79.36661, -28.49240, -4.13946),
		Vec3(80.04388, -28.87545, -4.13946),
		Vec3(80.08949, -28.63088, -4.13946),
		Vec3(80.76883, -29.01104, -4.13946),
		Vec3(80.81334, -28.76627, -4.13946),
		Vec3(81.49471, -29.14341, -4.13946),
		Vec3(81.53809, -28.89843, -4.13946),
		Vec3(82.22157, -29.27243, -4.13946),
		Vec3(82.26375, -29.02724, -4.13946),
		Vec3(82.94943, -29.39798, -4.13946),
		Vec3(82.99039, -29.15258, -4.13946),
		Vec3(83.67827, -29.51994, -4.13946),
		Vec3(83.71796, -29.27433, -4.13946),
		Vec3(84.40811, -29.63816, -4.13946),
		Vec3(84.44649, -29.39235, -4.13946),
		Vec3(85.13901, -29.75254, -4.13946),
		Vec3(85.17603, -29.50652, -4.13946),
		Vec3(85.87090, -29.86293, -4.13946),
		Vec3(85.90651, -29.61670, -4.13946),
		Vec3(86.60381, -29.96919, -4.13946),
		Vec3(86.63797, -29.72276, -4.13946),
		Vec3(87.33777, -30.07119, -4.13946),
		Vec3(87.37045, -29.82456, -4.13946),
		Vec3(88.07271, -30.16878, -4.13946),
		Vec3(88.10385, -29.92194, -4.13946),
		Vec3(88.80864, -30.26180, -4.13946),
		Vec3(88.83820, -30.01477, -4.13946),
		Vec3(89.54555, -30.35012, -4.13946),
		Vec3(89.57347, -30.10291, -4.13946),
		Vec3(90.28349, -30.43360, -4.13946),
		Vec3(90.30974, -30.18620, -4.13946),
		Vec3(91.02234, -30.51208, -4.13946),
		Vec3(91.04686, -30.26450, -4.13946),
		Vec3(91.76216, -30.58542, -4.13946),
		Vec3(91.78491, -30.33767, -4.13946),
		Vec3(92.50294, -30.65347, -4.13946),
		Vec3(92.52386, -30.40556, -4.13946),
		Vec3(93.24464, -30.71607, -4.13946),
		Vec3(93.26369, -30.46801, -4.13946),
		Vec3(93.98729, -30.77305, -4.13946),
		Vec3(94.00441, -30.52485, -4.13946),
		Vec3(94.73073, -30.82425, -4.13946),
		Vec3(94.74586, -30.57592, -4.13946),
		Vec3(95.47499, -30.86948, -4.13946),
		Vec3(95.48811, -30.62103, -4.13946),
		Vec3(96.22003, -30.90857, -4.13946),
		Vec3(96.23108, -30.66003, -4.13946),
		Vec3(96.96579, -30.94136, -4.13946),
		Vec3(96.97472, -30.69273, -4.13946),
		Vec3(97.71220, -30.96767, -4.13946),
		Vec3(97.71896, -30.71898, -4.13946),
		Vec3(98.45927, -30.98733, -4.13946),
		Vec3(98.46381, -30.73858, -4.13946),
		Vec3(99.20700, -31.00016, -4.13946),
		Vec3(99.20926, -30.75138, -4.13946),
		Vec3(99.95525, -31.00600, -4.13946),
		Vec3(99.95518, -30.75721, -4.13946),
		Vec3(100.70396, -31.00468, -4.13946),
		Vec3(100.70152, -30.75591, -4.13946),
		Vec3(101.45297, -30.99604, -4.13946),
		Vec3(101.44812, -30.74730, -4.13946),
		Vec3(102.20236, -30.97993, -4.13946),
		Vec3(102.19502, -30.73125, -4.13946),
		Vec3(102.95190, -30.95619, -4.13946),
		Vec3(102.94205, -30.70760, -4.13946),
		Vec3(103.70155, -30.92465, -4.13946),
		Vec3(103.68915, -30.67617, -4.13946),
		Vec3(104.45116, -30.88515, -4.13946),
		Vec3(104.43614, -30.63682, -4.13946),
		Vec3(105.20073, -30.83755, -4.13946),
		Vec3(105.18306, -30.58939, -4.13946),
		Vec3(105.95012, -30.78167, -4.13946),
		Vec3(105.92976, -30.53371, -4.13946),
		Vec3(106.69923, -30.71735, -4.13946),
		Vec3(106.67615, -30.46964, -4.13946),
		Vec3(107.44794, -30.64451, -4.13946),
		Vec3(107.42207, -30.39708, -4.13946),
		Vec3(108.19614, -30.56305, -4.13946),
		Vec3(108.16745, -30.31592, -4.13946),
		Vec3(108.94363, -30.47289, -4.13946),
		Vec3(108.91214, -30.22610, -4.13946),
		Vec3(109.69040, -30.37395, -4.13946),
		Vec3(109.65598, -30.12755, -4.13946),
		Vec3(110.43625, -30.26616, -4.13946),
		Vec3(110.39890, -30.02018, -4.13946),
		Vec3(111.18094, -30.14942, -4.13946),
		Vec3(111.14066, -29.90391, -4.13946),
		Vec3(111.92453, -30.02366, -4.13946),
		Vec3(111.88126, -29.77866, -4.13946),
		Vec3(112.66678, -29.88881, -4.13946),
		Vec3(112.62057, -29.64436, -4.13946),
		Vec3(113.40756, -29.74479, -4.13946),
		Vec3(113.35837, -29.50093, -4.13946),
		Vec3(114.14676, -29.59155, -4.13946),
		Vec3(114.09445, -29.34832, -4.13946),
		Vec3(114.88419, -29.42905, -4.13946),
		Vec3(114.82883, -29.18649, -4.13946),
		Vec3(115.61978, -29.25727, -4.13946),
		Vec3(115.56137, -29.01543, -4.13946),
		Vec3(116.35324, -29.07620, -4.13946),
		Vec3(116.29178, -28.83513, -4.13946),
		Vec3(117.08456, -28.88583, -4.13946),
		Vec3(117.01999, -28.64557, -4.13946),
		Vec3(117.81351, -28.68613, -4.13946),
		Vec3(117.74588, -28.44672, -4.13946),
		Vec3(118.54001, -28.47708, -4.13946),
		Vec3(118.46921, -28.23857, -4.13946),
		Vec3(119.26389, -28.25867, -4.13946),
		Vec3(119.19003, -28.02111, -4.13946),
		Vec3(119.98489, -28.03091, -4.13946),
		Vec3(119.90793, -27.79432, -4.13946),
		Vec3(120.70297, -27.79375, -4.13946),
		Vec3(120.62296, -27.55820, -4.13946),
		Vec3(121.41800, -27.54724, -4.13946),
		Vec3(121.33487, -27.31275, -4.13946),
		Vec3(122.12973, -27.29139, -4.13946),
		Vec3(122.04355, -27.05801, -4.13946),
		Vec3(122.83798, -27.02622, -4.13946),
		Vec3(122.74875, -26.79399, -4.13946),
		Vec3(123.54245, -26.75179, -4.13946),
		Vec3(123.45023, -26.52074, -4.13946),
		Vec3(124.24313, -26.46810, -4.13946),
		Vec3(124.14792, -26.23826, -4.13946),
		Vec3(124.93985, -26.17520, -4.13946),
		Vec3(124.84171, -25.94661, -4.13946),
		Vec3(125.63235, -25.87313, -4.13946),
		Vec3(125.53128, -25.64581, -4.13946),
		Vec3(126.32047, -25.56192, -4.13946),
		Vec3(126.21652, -25.33589, -4.13946),
		Vec3(127.00406, -25.24163, -4.13946),
		Vec3(126.89731, -25.01692, -4.13946),
		Vec3(127.68301, -24.91237, -4.13946),
		Vec3(127.57346, -24.68899, -4.13946),
		Vec3(128.35739, -24.57438, -4.13946),
		Vec3(128.24515, -24.35235, -4.13946),
		Vec3(129.02719, -24.22785, -4.13946),
		Vec3(128.91226, -24.00720, -4.13946),
		Vec3(129.69247, -23.87303, -4.13945),
		Vec3(129.57492, -23.65377, -4.13945),
		Vec3(129.69247, -23.87303, -4.13945),
		Vec3(130.35318, -23.51014, -4.13945),
		Vec3(130.23306, -23.29229, -4.13945),
		Vec3(129.57492, -23.65377, -4.13945),
		Vec3(130.35318, -23.51014, -4.13945),
		Vec3(131.00949, -23.13936, -4.13944),
		Vec3(130.88675, -22.92295, -4.13944),
		Vec3(130.23306, -23.29229, -4.13945),
		Vec3(131.66141, -22.76093, -4.13942),
		Vec3(131.53610, -22.54597, -4.13942),
		Vec3(131.66141, -22.76093, -4.13942),
		Vec3(132.30887, -22.37506, -4.13941),
		Vec3(132.18106, -22.16159, -4.13941),
		Vec3(131.53610, -22.54597, -4.13942),
		Vec3(132.95193, -21.98195, -4.13938),
		Vec3(132.82162, -21.76999, -4.13938),
		Vec3(132.95193, -21.98195, -4.13938),
		Vec3(133.59067, -21.58176, -4.13936),
		Vec3(133.45786, -21.37134, -4.13936),
		Vec3(132.82162, -21.76999, -4.13938),
		Vec3(134.22476, -21.17449, -4.13933),
		Vec3(134.08945, -20.96564, -4.13933),
		Vec3(134.22476, -21.17449, -4.13933),
		Vec3(134.85403, -20.76006, -4.13930),
		Vec3(134.71628, -20.55281, -4.13930),
		Vec3(134.08945, -20.96564, -4.13933),
		Vec3(135.47836, -20.33843, -4.13926),
		Vec3(135.33817, -20.13280, -4.13926),
		Vec3(135.47836, -20.33843, -4.13926),
		Vec3(136.09750, -19.90954, -4.13923),
		Vec3(135.95486, -19.70555, -4.13923),
		Vec3(135.33817, -20.13280, -4.13926),
		Vec3(136.09750, -19.90954, -4.13923),
		Vec3(136.71121, -19.47334, -4.13920),
		Vec3(136.56625, -19.27103, -4.13920),
		Vec3(135.95486, -19.70555, -4.13923),
		Vec3(136.71121, -19.47334, -4.13920),
		Vec3(137.31918, -19.02981, -4.13917),
		Vec3(137.17184, -18.82919, -4.13917),
		Vec3(136.56625, -19.27103, -4.13920),
		Vec3(137.92136, -18.57885, -4.13914),
		Vec3(137.77170, -18.37995, -4.13914),
		Vec3(137.92136, -18.57885, -4.13914),
		Vec3(138.51749, -18.12045, -4.13912),
		Vec3(138.36551, -17.92327, -4.13912),
		Vec3(137.77170, -18.37995, -4.13914),
		Vec3(138.51749, -18.12045, -4.13912),
		Vec3(139.10733, -17.65455, -4.13910),
		Vec3(138.95309, -17.45913, -4.13910),
		Vec3(138.36551, -17.92327, -4.13912),
		Vec3(139.10733, -17.65455, -4.13910),
		Vec3(139.69089, -17.18132, -4.13909),
		Vec3(139.53445, -16.98767, -4.13909),
		Vec3(138.95309, -17.45913, -4.13910),
		Vec3(139.69089, -17.18132, -4.13909),
		Vec3(140.26834, -16.70105, -4.13908),
		Vec3(140.10971, -16.50917, -4.13908),
		Vec3(139.53445, -16.98767, -4.13909),
		Vec3(140.26834, -16.70105, -4.13908),
		Vec3(140.83969, -16.21398, -4.13908),
		Vec3(140.67892, -16.02390, -4.13908),
		Vec3(140.10971, -16.50917, -4.13908),
		Vec3(141.40512, -15.72042, -4.13909),
		Vec3(141.24222, -15.53213, -4.13909),
		Vec3(141.40512, -15.72042, -4.13909),
		Vec3(141.96469, -15.22066, -4.13909),
		Vec3(141.79977, -15.03416, -4.13909),
		Vec3(141.24222, -15.53213, -4.13909),
		Vec3(142.51852, -14.71498, -4.13911),
		Vec3(142.35165, -14.53027, -4.13911),
		Vec3(143.06680, -14.20365, -4.13912),
		Vec3(142.89798, -14.02073, -4.13912),
		Vec3(143.60959, -13.68697, -4.13913),
		Vec3(143.43881, -13.50582, -4.13913),
		Vec3(143.60959, -13.68697, -4.13913),
		Vec3(144.14700, -13.16521, -4.13915),
		Vec3(143.97440, -12.98583, -4.13915),
		Vec3(143.43881, -13.50582, -4.13913),
		Vec3(144.67917, -12.63868, -4.13917),
		Vec3(144.50479, -12.46104, -4.13917),
		Vec3(145.20627, -12.10758, -4.13919),
		Vec3(145.03024, -11.93166, -4.13919),
		Vec3(145.72855, -11.57214, -4.13921),
		Vec3(145.55075, -11.39793, -4.13921),
		Vec3(146.24606, -11.03262, -4.13923),
		Vec3(146.06668, -10.86008, -4.13923),
		Vec3(146.75900, -10.48923, -4.13925),
		Vec3(146.57809, -10.31835, -4.13925),
		Vec3(147.26761, -9.94223, -4.13927),
		Vec3(147.08511, -9.77299, -4.13927),
		Vec3(147.77200, -9.39182, -4.13929),
		Vec3(147.58804, -9.22418, -4.13929),
		Vec3(148.27231, -8.83824, -4.13931),
		Vec3(148.08701, -8.67218, -4.13931),
		Vec3(148.76883, -8.28173, -4.13933),
		Vec3(148.58212, -8.11722, -4.13933),
		Vec3(148.76883, -8.28173, -4.13933),
		Vec3(149.45541, -7.59785, -4.13937),
		Vec3(149.26712, -7.43516, -4.13938),
		Vec3(148.58212, -8.11722, -4.13933),
		Vec3(149.45541, -7.59785, -4.13937),
		Vec3(150.07224, -6.88286, -4.13939),
		Vec3(149.88278, -6.72160, -4.13939),
		Vec3(149.26712, -7.43516, -4.13938),
		Vec3(150.07224, -6.88286, -4.13939),
		Vec3(150.63742, -6.21586, -4.13941),
		Vec3(150.44656, -6.05628, -4.13941),
		Vec3(149.88278, -6.72160, -4.13939),
		Vec3(151.15543, -5.59434, -4.13942),
		Vec3(150.96304, -5.43658, -4.13942),
		Vec3(151.63089, -5.01586, -4.13943),
		Vec3(151.43698, -4.85992, -4.13943),
		Vec3(152.06845, -4.47793, -4.13944),
		Vec3(151.87320, -4.32373, -4.13944),
		Vec3(152.47275, -3.97818, -4.13944),
		Vec3(152.27634, -3.82548, -4.13944),
		Vec3(152.84860, -3.51422, -4.13945),
		Vec3(152.65128, -3.36267, -4.13945),
		Vec3(153.20071, -3.08368, -4.13945),
		Vec3(153.00284, -2.93281, -4.13945),
		Vec3(254.86276, 117.97976, -4.13946)
	};

	/*
	 * method itterate's throw the Vec3 Array, insert the Points in the AnimationPath and calculate the correct angle between two points.
	 * not in use anymore due to bugs.
	 * This method was the idea of a good solution but becaused of not enough time I had to use the "brute force" solution, see below.
	 * 
	float j = 0.0f;
	float angleCount = 0;
	float angleLast = 0;
	float angleNew = 0;
	path->insert(0.0f, osg::AnimationPath::ControlPoint(pathArray[0]));
	for (int i = 10; i < (sizeof(pathArray) / sizeof(pathArray[0])); i += vectorCount) { //(sizeof(pathArray) / sizeof(pathArray[0])
		j += time; //time
		angleNew = getAngleRad(pathArray[i - vectorCount], pathArray[i]);
		if(angleNew > angleLast) {
		  angleCount += angleNew;
		}
		else{
		  angleCount -= angleNew;
		}
		path->insert((j), osg::AnimationPath::ControlPoint(pathArray[i], Quat(angleCount, osg::Z_AXIS)));
		angleLast = angleNew;
	}
	*/
   
	
	//Insert every 10-th point from the Vec3 array. The time variable pinpoints the time that the Object will take between two points.
	//every insert command contains the angle around the Z-Axis.
	double t = 0.0f;
	int i = 1;
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[0])); //start point with longer distance than the others
	path->insert((t = t + time + 2), osg::AnimationPath::ControlPoint(pathArray[i]));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.028, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.040, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.079, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.140, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.165, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.215, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.265, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.300, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.340, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.380, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.425, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.470, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.530, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.590, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.650, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.710, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.765, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.820, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.860, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.920, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.940, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.965, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.990, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.020, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.050, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.070, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.080, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.080, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.085, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.090, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.090, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.090, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.085, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.080, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.070, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.060, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.050, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.050, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.050, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.040, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.000, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.980, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.950, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.910, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.870, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.830, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.810, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.790, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.760, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.745, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.725, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.705, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.690, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.675, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.660, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.645, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.630, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.620, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.610, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.600, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.600, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.590, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.590, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.600, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.610, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.620, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.630, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.640, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.650, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.660, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.680, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.700, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.720, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.750, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.780, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.800, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.830, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.880, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.940, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(0.990, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.060, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.120, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.150, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.190, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.220, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.260, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.290, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.350, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.400, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.460, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.500, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.520, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.560, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.580, osg::Z_AXIS)));
	path->insert((t = t + time), osg::AnimationPath::ControlPoint(pathArray[i = i + vectorCount], Quat(1.600, osg::Z_AXIS)));
	
	return path.release();
}